
#ifndef GETCONF_H
#define GETCONF_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define CONF_FILE "zipper.conf"



/*
 *@return 返回配置文件值，配置文件读取失败后返回默认值53
 */
extern unsigned short get_proxy_port();


/*
 *@return 返回配置文件值，配置文件读取失败后返回默认值6379
 */
extern unsigned short get_redis_port();


/*
 *@return 返回配置文件值，配置文件读取失败后返回默认值4053
 */
extern unsigned short get_bind_port();


/*
 *@param server_ip [O] redis 的服务器的IP地址
 *@note 如果配置文件读取成功，则是配置的值，否则赋予server_ip默认值127.0.0.1
 */
extern void get_redis_server(char *server_ip);


/*
 *@param server_ip [O] bind 的服务端IP地址
 *@note 如果配置文件读取成功，则是配置的值，否则赋予server_ip默认值127.0.0.1
 */
extern void get_bind_server(char *server_ip);


/*
 *@return 返回配置文件中是否开启日志值，配置文件读取失败后返回默认值0
 */
extern unsigned short get_is_log();


/*!
 *@note  以字符串的形式返回某个关键字对应的值
 *@param filename [I] 要读取的配置文件名
 *@param keyname  [I] 要读取的关键字
 *@param outname  [O] 返回得到的值
 *@return 成功返回0 否则返回非0
*/
extern int 
get_string(const char *filename,char *keyname, char *outname);



/*!
 *@note  以字符串的形式返回某个关键字对应的值
 *@param filename [I] 要读取的配置文件名
 *@param keyname  [I] 要读取的关键字
 *@param value  [O] 返回得到的值
 *@return 成功返回0 ，否则返回非0
 */
extern int 
get_integer(const char *filename,char *keyname,int *value);




/*!
 *@note  以字符串的形式返回某个关键字对应的值
 *@param filename [I] 要读取的配置文件名
 *@param keyname  [I] 要读取的关键字
 *@param value  [O] 返回得到的值
 *@return 成功返回0 ，否则返回非0
 */
extern int 
get_double(const char *filename,char *keyname,double *value);


#endif
